<?php
class AdminUsersEditController extends AdminIndexController
{
    public function getTemplateName()
    {
        return 'AdminUserEdit.tpl';
    }
    
    public function prepare()
    {
        $id = Env::getParam('id');

        if ($id) {
            $um = new UsersModel();
            $user = $um->get($id);
            
            if (!$user) {
                throw new HTTP404Exception();
            }
            $this->view->assign('user', $user);
        }
        
        ApplicationController::attachEventListener($this, array($_POST, 'UserSaveAction'));
    }
    
    public function exec()
    {
        $response = array(
            'error' => 1,
            'text'  => 'При попытке сохранения произошла ошибка'
        );
        
        $id       = Env::getParam('id');
        $email    = Env::post('email');
        $password = Env::post('password');
        $status   = Env::post('status');

        $um = new UsersModel(DbConnection::COMMON_SPACE, true);
        
        $user = $um->get($id);
            
        if (!$user) {
            $response = array(
                'error' => 1,
                'text'  => 'Пользователь не найден'
            );
            echo json_encode($response);
            die();
        }
        
        if (!empty($email)) {
            $user->setEmail($email);
        }
        if (!empty($password)) {
            $user->setPassword(MD5($password));
        }
        if (!empty($status)) {
            $user->setStatus($status);
        }
        
        if ($um->update($user)) {
            $response['error'] = 0;
            $response['text']  = '';
        }
        
        echo json_encode($response);
        die();
    }
}